Systems and methods for call session control function failover using dynamic routing techniques

ABSTRACT

A system described herein may provide a technique for the seamless failover of devices in a network, such as a wireless telecommunications network. For example, embodiments may identify a particular device, such as a Call Session Control Function (“CSCF”), that has failed or that does not meet particular performance metrics. An Internet Protocol (“IP”) address of the failed device may be assigned to a functioning device of the same type (e.g., another CSCF). The functioning device may be instructed, in accordance with some embodiments, to output routes between itself and other devices or IP addresses, based on which traffic originally intended for the failed device may be routed to the functioning device.

BACKGROUND

A wireless network may include geographically distributed Packet DataNetwork (“PDN”) Gateway (“PGWs”), which may provide an interface betweenelements of the wireless network and external networks, such as theInternet. A PGW may also serve as a proxy between a User Equipment(“UE”), such as a mobile telephone, and a Call Session Control Function(“CSCF”), during a registration process between the UE and the CSCF. Theregistration process may include assigning one or more CSCFs to servethe UE. Once registered, CSCFs may assist with call setup or otherservices provided to the UE.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1 and 2 illustrate an assignment of one or more CSCFs for UEsbased on location;

FIG. 3 illustrates an example reassignment of an Internet Protocol(“IP”) address associated with a failed CSCF, in order to effect aseamless failover of the failed CSCF to a functioning CSCF;

FIG. 4 illustrates an example modification of a data structure that mayreflect the reassignment of a reassignment of a failed CSCF to afunctioning CSCF, in accordance with some embodiments described herein;

FIG. 5 illustrates an example process for assigning one or more CSCFs toserve a UE based on a location associated with a PGW that acts as aregistration proxy for the UE;

FIG. 6 illustrates an example process for reassigning an IP address,associated with a failed CSCF, to a functioning CSCF;

FIG. 7 illustrates an example environment in which one or moreembodiments, described herein, may be implemented; and

FIG. 8 illustrates example functional components of one or more devices,in accordance with one or more embodiments described herein.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The following detailed description refers to the accompanying drawings.The same reference numbers in different drawings may identify the sameor similar elements.

Embodiments described herein provide for the selection of a set of CSCFsto provide services (e.g., services associated with an IP MultimediaSubsystem (“IMS”) network, such as voice call setup services) to a UE,in a manner that is based on the location of the UE. Specifically, forexample, in situations where a network device, such as a PGW, a UserPlane Function (“UPF”), and/or some other device or system, acts as aproxy for the UE during CSCF selection, the location of the PGW, UPF,etc. may be used to select one or more CSCFs that are geographicallyproximate to the PGW, UPF, etc. The PGW, UPF, etc. may have beenselected, from a pool of geographically distributed PGWs, UPFs, etc.,based on proximity to the UE. In this manner, the selection of the CSCFsfor the UE may be ultimately be based on the location of the UE.

Further, embodiments described herein provide for the seamless failoverof CSCFs or other devices or systems that have been selected to provideservices to the UE. For example, while an initial CSCF assignment orprovisioning process may include assigning multiple CSCFs, includingsecondary or tertiary CSCFs (e.g., in accordance with aLocal-Local-Remote (“LLR”) selection scheme), some UEs may not includethe capability of communicating with secondary or tertiary CSCFs withoutbeing powered down and restarted. For example, some UEs may include astub resolver or some other type of function that may not be able toeasily switch to communications with a secondary CSCF, in the event thata primary CSCF fails or is otherwise unreachable. As described herein,dynamic routing techniques (e.g., Border Gateway Protocol (“BGP”),and/or some other suitable routing technique) may be utilized to effecta seamless failover, in accordance with some embodiments.

As shown in FIG. 1, a session establishment request, associated with UE101, may be received (at 102) by PGW 103. As denoted by the dashed linebetween UE 101 and PGW 103 in the figure, this request may be receivedfrom one or more intervening devices, such as a Mobility ManagementEntity (“MME”) and/or a Serving Gateway (“SGW”) of a wireless network(e.g., an Evolved Packet Core (“EPC”) network). While not described indetail here, this request may be received after UE 101 performs a RadioResource Control (“RRC”) establishment procedure with a base station(e.g., an evolved Node B (“eNB”)) of a radio access network (“RAN”)(e.g., a Long-Term Evolution (“LTE”) RAN). Further, while described inthe context of a LTE RAN and/or an EPC, similar concepts may apply inother types of networks that utilize IP messaging (e.g., a FifthGeneration (“5G”) core). For example, when a PGW network is discussedherein, similar concepts may apply to a UPF of a 5G core network.Similarly, when a MME is discussed herein, similar concepts may apply toan Access and Mobility Management Function (“AMF”) or some othersuitable device or system of a 5G core network.

As one example of the session establishment procedure shown in FIG. 1,the UE may output a PDN Connectivity Request, based on which the MME mayoutput (e.g., via the SGW) a Create Default Bearer Request to PGW 103.Some or all of these messages may be referred to in FIG. 1 as “sessionestablishment request” 102. PGW 103 may have been selected (e.g., from apool of candidate PGWs that are geographically distributed) by the MME(e.g., based on a location of UE 101) and/or by one or more otherelements of the EPC.

Based on receiving the request to establish a session (e.g., a PDNConnectivity Request) for UE 101, PGW 103 may output (at 104) a requestfor one or more IP addresses of one or more CSCFs to provide services toUE 101. For example, PGW 103 may output the request to CSCF SelectionComponent 105. The request may be sent using the Diameter protocol,and/or some other suitable type of messaging. In some embodiments, therequest (sent by PGW 103 at 104) may include an IP address and/or someother identifier of PGW 103. In some embodiments, CSCF SelectionComponent 105 may include Domain Name System (“DNS”) functionality,and/or may be communicatively coupled to a DNS component (not shown).For example, CSCF Selection Component 105 may receive and/or maintainrecords (e.g., DNS records) that correlate CSCFs to IP addresses.

As further shown, CSCF Selection Component 105 may maintain or receive(at 106) location information, associated with PGW 103 and/or one ormore other PGWs associated with the EPC, from PGW Location Repository107. PGW Location Repository 107 may be a device associated with theEPC, and/or may be communicatively coupled to one or more devices of theEPC. In some embodiments, CSCF Selection Component 105 and PGW LocationRepository 107 may be implemented by the same device or system. Thelocation information (received at 106) may include a mapping between IPaddresses (or other identifiers) of PGWs to the locations at which thePGWs are located. Based on the information received from PGW LocationRepository 107, CSCF Selection Component 105 may identify the locationof PGW 103 (e.g., by using the IP address or other identifier of PGW 103to identify the corresponding location of PGW 103).

Further, CSCF Selection Component 105 may maintain or receive (at 108)location information, associated with a set of CSCFs (e.g., candidateCSCFs, from which one or more CSCFs may be selected to serve UE 101),from CSCF Location Repository 109. CSCF Location Repository 109 may be adevice associated with the EPC, and/or may be communicatively coupled toone or more devices of the EPC. In some embodiments, CSCF SelectionComponent 105 and CSCF Location Repository 109 may be implemented by thesame device or system. The location information received (at 108) fromCSCF Location Repository 109 may indicate, on a per-CSCF basis, ageographical location associated with each CSCF of the set of candidateCSCFs. The location information may, in some embodiments, be expressedas coordinates (e.g., longitude and latitude) or in some other similarmanner. In some embodiments, the location information may be expressedin terms of a data center or facility in which the CSCFs are physicallylocated. CSCF Selection Component 105 may also receive informationindicating location information for various data centers or facilities,based on which CSCF Selection Component 105 may ultimately determine thelocations of the candidate CSCFs.

While discussed herein in the context of CSCFs 111, in practice, similarconcepts may apply for other devices or systems that are selected toprovide services or communications associated with UE 101. For example,similar concepts may apply for a Home Subscriber Server (“HSS”), UnifiedData Management function (“UDM”), etc. For example, a HSS or UDM may beselected based on a location of UE 101, PGW 103, etc.

CSCF Selection Component 105 may select (at 110) one or more CSCFs basedon the determined location of PGW 103. For example, assume that thelocation information associated with the candidate set of CSCFs(received at 108) includes location information for example CSCFs 111-1,111-2, and 111-3 (hereinafter referred to individually as “CSCF 111” orcollectively as “CSCFs 111”). In this example, assume that CSCFSelection Component 105 determines that CSCF 111-2 is located mostgeographically proximate to PGW 103, from the candidate set of CSCFsthat includes CSCFs 111-1, 111-2, and 111-3. Thus, in this example, CSCFSelection Component 105 may select (at 110) CSCF 111-2 to serve UE 101,and may not select CSCFs 111-1 or 111-3.

While shown as the selection of one particular CSCF 111, in practice,CSCF Selection Component 105 may select (at 110) multiple CSCFs 111 toserve UE 101. For example, as discussed above, CSCFs 111 may be locatedin data centers or facilities, in which multiple CSCFs 111 may belocated. Thus, in some embodiments, CSCF Selection Component 105 mayselect multiple CSCFs 111 (e.g., co-located CSCFs 111) to serve UE 101,where one CSCF 111 is designated as a “primary” CSCF, and one or moreother CSCFs 111 are designated as “secondary,” “tertiary,” “auxiliary,”etc. CSCFs. In some embodiments, using a LLR selection technique, twoco-located CSCFs may be selected as primary and secondary CSCFs (e.g.,two CSCFs located in the same data center), and a CSCF located in adifferent location (e.g., located in a different data center) may beselected as a tertiary CSCF.

In some embodiments, UE 101 may be configured to communicate or registerwith a primary CSCF 111, and communicate with a secondary or tertiaryCSCF in the event of a failure of the primary CSCF 111. However, asmentioned above, some UEs 101 may not include suitable functionality tocommunicate with a secondary or tertiary CSCF in the event of failure ofthe primary CSCF 111. As discussed below, the IP address of the primaryCSCF 111 may be reassigned to a different CSCF 111 if the primary CSCF111 fails, thus eliminating the need for UE 101 to reestablishcommunications with the secondary or tertiary CSCF 111.

Once CSCF Selection Component 105 has selected a particular CSCF 111 (orset of CSCFs 111) for UE 101, CSCF Selection Component 105 may provide(at 112), to PGW 103, an indication of the IP address (or addresses) ofthe selected CSCF(s) 111. For example, the indication (sent at 112) mayinclude a DNS response (e.g., a Resource Record Response). In someembodiments, this message may be sent using the Diameter protocol and/orsome other suitable type of message. PGW 103 may accordingly output (at114) the IP address (or addresses) of the selected CSCF(s) 111. Whileshown in the figure as being sent to UE 101, the dashed line 114 mayindicate one or more messages sent by one or more intervening devices.For example, PGW 103 may output a Create Default Bearer Response to aSGW, which may forward the Create Default Bearer Response (or othersuitable message) to a MME associated with UE 101. The MME may create oractivate one or more bearers (e.g., an Evolved Packet System (“EPS”)Bearer) based on receiving the Create Default Bearer Response (and/orbased on one or more other messages not discussed in detail here for thesake of brevity). As part of this bearer establishment process, the IPaddress(es) of the selected CSCF(s) 111 may be provided (at 114) to UE101.

Based on receiving the IP address(es) of the selected CSCF(s) 111,including the IP address of CSCF 111-2, UE 101 may communicate with CSCF111-2 (e.g., where CSCF 111-2 is a primary CSCF of the selected CSCFs111, in a situation where multiple CSCFs 111 have been selected). UE 101may thus use the IP address of CSCF 111-2 to communicate with CSCF111-2, and perform (at 116) a registration process with CSCF 111-2. Insome embodiments, the registration process may include a SessionInitiation Protocol (“SIP”) registration process, based on which CSCF111-2 may provide services (e.g., voice call services, messagingservices, etc.) to UE 101.

Selecting a CSCF based on location, in accordance with some embodiments(e.g., as described above), may reduce the perceived latency infunctions such as voice call (e.g., Voice over LTE (“VoLTE”) call) setupassociated with UE 101. For example, since CSCF 111-2 has been selectedbased on proximity to PGW 103 (which may have itself been selected basedon proximity to UE 101), the communications (e.g., at 116) between UE101 and CSCF 111-2 may traverse a shorter physical distance than if UE101 were to communicate with a CSCF 111 that is located farther awayfrom UE 101 (e.g., CSCF 111-1 or 111-3). That is, since suchcommunications may traverse a shorter physical distance, thesecommunications may take less time to reach CSCF 111-2 from UE 101, orvice versa.

FIG. 2 illustrates some of the concepts described with regard to FIG. 1,in the context of multiple UEs that are located in different locations,and are thus associated with different PGWs 103. For example, as shown,UEs 101-1 and 101-2 may be located in a first geographical region(“Region_A”), while UE 101-3 may be located in a second geographicalregion (“Region_B”). These different regions may be for example,different cities, states, provinces, tracking areas (“TAs”), and/or someother suitable delineation of regions.

In some embodiments, a “region” may be defined in terms of connectivityto a particular PGW 103. For example, UEs 101 that are considered to bein Region_A may be so considered due to being associated with PGW 103-1,while UEs 101 that are considered to be in Region_B may be so considereddue to being associated with PGW 103-2. These “associations” between UEsand PGWs are denoted in the figure by dotted lines between UEs 101 andrespective PGWs 103. As discussed above, these dotted lines may reflect,for example, one or more messages or communications between UEs 101,PGWs 103, and/or one or more other devices or systems (e.g., a MME, aSGW, etc.), by which PGW 103-1 is associated with (or assigned to) UEs101-1 and 101-2, and by which PGW 103-2 is associated with (or assignedto) UE 101-3.

As shown, CSCF Selection Component 105 may receive (at 202) requests forCSCF IP addresses, on behalf of UEs 101-1 and 101-2, from PGW 103-1.That is, as similarly discussed above, PGW 103-1 may act as a proxy forCSCF registration on behalf of UEs 101-1 and 101-2. Although shown asone arrow 202 in the figure, in practice, these requests may includemultiple messages sent at different times. As also shown, CSCF SelectionComponent 105 may receive (at 204) a request for a CSCF IP address (oraddresses), on behalf of UE 101-3, from PGW 103-2. These requests (at202 and 204) may be received, in some embodiments, as Diameter protocolmessages.

As further shown, various data centers 201 may be geographicallydistributed. For example, as shown, data center 201-1 may be a datacenter that is located in, or is otherwise associated with, Region_A,data center 201-2 may be located in Region B, and data center 201-3 maybe located in Region_C. Data center 201-1 may include a first set ofCSCFs (including CSCFs 111-1 through 111-4), data center 201-2 mayinclude a second set of CSCFs (including CSCFs 111-5 through 111-8), anddata center 201-3 may include a third set of CSCFs (including CSCFs111-9 through 111-12). While each example data center 201 is shown hereas including four CSCFs 111, in practice, data centers 201 may includeadditional or fewer CSCFs 111. Further, while each data center 201 isshown here as including the same quantity of CSCFs 111, in practice,different data centers 201 may include different quantities of CSCFs111.

Based on the requests (received at 202 and 204), CSCF SelectionComponent 105 may select particular CSCFs for UEs 101-1, 101-2, and101-3. For example, CSCF Selection Component 105 may select (at 206) aparticular CSCF 111 from data center 201-1 to serve UE 101-1 and/or UE101-2 (e.g., CSCF 111-1, as denoted by the bold line in the figure). Forexample, as similarly discussed above, CSCF Selection Component 105 mayidentify, based on an IP address (or other identifier) associated withPGW 103-1, as well as information that maps PGW IP addresses to regions,that CSCFs 111 from data center 201-1 should be selected for UEs 101-1and/or 101-2 (e.g., as opposed to CSCFs 111 from data center 201-2 ordata center 201-3, associated with different regions). Additionally, oralternatively, CSCF Selection Component 105 may indicate (at 206) to acontroller or other device or system associated with data center 201-1that a particular CSCF 111 should be selected, and the controllerassociated with data center 201-1 may select CSCF 111-1 (e.g., from theset of CSCFs that includes CSCFs 111-1 through 111-4). Similarly, CSCFSelection Component 105 may select (at 208) a particular CSCF (e.g.,CSCF 111-10, in this example) to serve UE 101-3.

As similarly described above, once CSCF Selection Component 105 selects(at 206 and 208) CSCFs 111 to serve UEs 101-1, 101-2, and/or 101-3, CSCFSelection Component 105 may provide the IP addresses associated with theselected CSCFs 111 to respective UEs 101-1, 101-2, and/or 101-3 (e.g.,via an MME, an SGW, and/or some other device or system). UEs 101-1,101-2, and 101-3 may thus utilize these IP addresses to communicate withrespective CSCFs 111, in order to perform call setup and/or otherprocedures (e.g., using SIP messaging and/or some other suitableprotocol).

As shown in FIG. 3, data centers 201 may each be associated with anidentifier (“ID”), an IP address range, and a backup IP address range.The ID for each data center 201 may be an identifier used in a dynamicrouting technique, such as an Autonomous System Number (“ASN”) used in aBGP routing technique. The ID may, in some embodiments, be used inaccordance with the routing technique to define paths between differentelements (e.g., where each element may be referred to as an AutonomousSystem (“AS”), which is associated with its own unique ASN, in someembodiments). The routing technique may also include a mapping or othercorrelation of IP addresses, or IP address ranges, to ASNs or other IDs.

For example, as shown here, CSCFs 111-1 through 111-4, associated withdata center 201-1, may have IP addresses beginning with “1.1.1” (denotedin the figure as “1.1.1.x”). While IP address ranges are sometimesdiscussed herein using a “1.1.1.x” notation, similar concepts may applyusing different notations for IP address ranges (e.g.,“1.1.1.0-1.1.1.255”, “1.1.1.0/24,” or other suitable notations). Asfurther shown, CSCFs 111-1 through 111-4, associated with data center201-1, may have backup IP addresses in the “2.2.2.x” range. For example,during an initial provisioning process, and/or during an IP addressreassignment process, CSCFs 111-1 through 111-4 may have been assignedboth a primary IP address (e.g., in the “1.1.1.x” range) and a backup IPaddress (e.g., in the “2.2.2.x” range). In some embodiments, acontroller, router, etc. associated with data center 201-1 may maintaininformation associating each CSCF 111 with a particular primary andbackup IP address. As further discussed below, Master Routing Component301 and/or some other device or system may additionally, oralternatively, maintain information mapping IDs (e.g., ASNs) to IPaddresses or IP address ranges.

In some embodiments, each particular data center 201 may include acomponent or function associated with a particular routing technique(e.g., a BGP component), which advertises routes between particularsource IP addresses (or IP address ranges) and the IP addressesassociated with particular data center 201. For example, data center201-1 may advertise routes from IP addresses (e.g., associated with UEs101 or groups of UEs 101) to IP addresses in the “1.1.1.x” range. Theroutes may, in some embodiments, be expressed in terms of ASNs or othersuitable identifiers.

As described herein, each data center 201 may advertise routesassociated with its primary IP address range unless otherwiseinstructed. For example, data center 201-1 may advertise routes to theIP address range “1.1.1.x”, data center 201-2 may advertise routes tothe IP address range “2.2.2.x”, and data center 201-3 may advertiseroutes to the IP address range “3.3.3.x”. The advertisements fromvarious elements associated with the dynamic routing technique (e.g.,BGP advertisements by data centers 201) may be received by MasterRouting Component 301 and/or other elements that implement the dynamicrouting technique (e.g., routers associated with a core or anotherportion of a wireless network). In some embodiments, Master RoutingComponent 301 may broadcast and/or otherwise propagate routinginformation, based on the advertised routes, to other elements thatimplement the dynamic routing technique. In this manner, each elementthat implements the dynamic routing technique may be “aware” of thetopology of the network according to the routing technique, and/or ofthe routes that involve the particular elements. In some embodiments,Master Routing Component 301 may be, or may include, a BGP routereflector or other suitable component.

As shown in FIG. 3, CSCF Availability Component 303 may becommunicatively coupled to one or more data centers 201, and/or to oneor more CSCFs 111 associated with data centers 201. These communicationsare illustrated in FIG. 3 as a single arrow at CSCF AvailabilityComponent 303. In practice, multiple connections, sessions, interfaces,etc. may be present between CSCF Availability Component 303 and one ormore data centers 201. Additionally, or alternatively, CSCF AvailabilityComponent 303 may receive information regarding data centers 201 and/orCSCFs 111 from some other source.

Based on communications with, or regarding data centers 201 and/or CSCFs111, CSCF Availability Component 303 may determine availability orperformance associated with one or more data centers 201 or CSCFs 111.CSCF Availability Component 303 may, for instance, communicate withCSCFs 111 using polling, ping messages, and/or other suitable types ofcommunications in order to determine whether CSCFs 111 are functioningor have failed. Additionally, or alternatively, CSCF AvailabilityComponent 303 may communicate with data centers 201 (e.g., withcontrollers, routers, etc. associated with data centers 201), todetermine performance or availability of data centers 201.

For example, if CSCF Availability Component 303 sends a series ofmessages to data center 201-1 (e.g., to a controller, router, etc.associated with data center 201-1) and does not receive a response(e.g., within a threshold time), CSCF Availability Component 303 maydetermine that data center 201-1, and/or CSCFs 111-1 through 111-4(e.g., the particular CSCFs 111 associated with data center 201-1) havefailed. As another example, CSCF Availability Component 303 may utilizesimilar messaging (or some other suitable technique) to determineperformance or link quality metrics such as latency, throughput, jitter,packet loss, packet error rate, etc. If these metrics (e.g.,individually, or in combination, in some embodiments) are below athreshold, CSCF Availability Component 303 may determine that datacenter 201-1 and/or CSCFs 111-1 through 111-4 have failed.

In this example, CSCF Availability Component 303 may determine that datacenter 201-1 (and/or one or more CSCFs 111 associated with data center201-1) has failed. Based on determining that data center 201-1 hasfailed, CSCF Availability Component 303 may output (at 302) anindication (e.g., to CSCF Selection Component 105) that data center201-1 has failed. In some embodiments, CSCF Selection Component 105 mayalso maintain information indicating the IP address ranges (e.g., theprimary and backup IP address ranges) associated with data center 201-1.For example, CSCF Selection Component 105 may receive (at 304) theinformation indicating the IP address ranges associated with data center201-1, data center 201-2, and/or data center 201-3. In some embodiments,CSCF Selection Component 105 may receive (at 304) this information afterreceiving (at 302) the indication that data center 201-1 has failed, orprior to receiving the indication that data center 201-1 has failed. Forexample, CSCF Selection Component 105 may implement the same dynamicrouting protocol as Master Routing Component 301, and may thus receiverouting updates propagated by Master Routing Component 301.Additionally, or alternatively, Master Routing Component 301 mayperiodically or intermittently provide updated routing information toCSCF Selection Component 105. In some embodiments, Master RoutingComponent 301 and CSCF Selection Component 105 may be implemented by thesame device or system.

Based on receiving the indication that data center 201-1 has failed, andfurther based on the routing information received from Master RoutingComponent 301, CSCF Selection Component 105 may identify the IP addressranges (e.g., the primary IP address range) associated with data center201-1 (e.g., the range “1.1.1.x” in this example), and may furtheridentify (at 306) that a backup IP address range of data center 201-3 isthe same IP address range as the primary IP address range of data center201-1. That is, the information (received from Master Routing Component301) may indicate that a backup IP address range of data center 201-3 is“1.1.1.x”. In other words, CSCF Selection Component 105 may determinethat the IP address range “1.1.1.x” should be reassigned to data center201-3, in lieu of data center 201-1. Thus, for example, the IP address1.1.1.3, previously associated with CSCF 111-3, may be reassigned toCSCF 111-11. In this manner, as one example, CSCF 111-11 may be selectedto provide services (e.g., call setup services, messaging services,etc.) previously provided by CSCF 111-3.

CSCF Selection Component 105 may notify (at 308) data center 201-3 thatthe backup IP address range associated with data center 201-3 should beactivated. For example, CSCF Selection Component 105 may instruct datacenter 201-3 to advertise routes associated with the IP address range“1.1.1.x”. In this manner, data center 201-3 may, after receiving (at308) the notification or instruction from CSCF Selection Component 105,advertise (at 310) routes associated with both the primary IP addressrange of “3.3.3.x” as well as the secondary IP address range of“1.1.1.x”. The advertisement may be according to the same dynamicrouting technique implemented by Master Routing Component 301, such as aBGP advertisement. In some embodiments, the advertisement may includethe identifier (e.g., ASN) of data center 201-3 (e.g., shown in figureas “ID:3456”).

In some embodiments, CSCF Selection Component 105 may also notify datacenter 201-1 to stop advertising routes associated with the IP addressrange “1.1.1.x”. For example, in the event that data center 201-1 hasfailed or performance associated with data center 201-1 has fallen belowa threshold level, data center 201-1 may still be reachable by CSCFSelection Component 105. For example, while one or more CSCFs 111associated with data center 201-1 may have failed, a controller, router,etc. associated with data center 201-1 (e.g., a device or systemassociated with data center 201-1, that implements the dynamic routingscheme associated with Master Routing Component 301, such as a BGPcomponent) may not have failed. In such instances, CSCF SelectionComponent 105 may communicate with the controller, router, etc.associated with data center 201-1 to indicate that data center 201-1should not advertise routes associated with the IP address range“1.1.1.x”. In some embodiments, if data center 201-1 is not reachable,CSCF Selection Component 105 (and/or some other device or system) mayqueue the notification and notify data center 201-1, when data center201-1 is available, to stop advertising the routes associated with thisIP address range. Additionally, or alternatively, if data center 201-1becomes available after some period of time, CSCF Selection Component105 may notify data center 201-3 to stop advertising routes associatedwith the IP address range “1.1.1.x”.

This advertisement may be received by Master Routing Component 301and/or one or more other network elements that implement the particulardynamic routing technique. Master Routing Component 301 may, in someembodiments, propagate (at 312) the advertisement to one or more routers305 and/or other network elements. For example, routers 305 may berouters associated with a core of a wireless network, and/or some othertype of network. Routers 305 may, in this context, include devices orsystems that route IP traffic. In some embodiments, one or more routers305 may also implement the particular routing technique implemented byMaster Routing Component 301, and/or may be associated with identifiers(e.g., ASNs) associated with the particular routing technique. As such,routers 305 may use the propagated information, from Master RoutingComponent 301, to determine how to forward received traffic. Forexample, routers 305 may use identifiers (e.g., ASNs) indicated inparticular paths (e.g., as provided by Master Routing Component 301and/or as determined by respective routers 305) to forward traffic to(or toward) their destination.

For example, assume that one or more routers 305 receive traffic from UE101 (e.g., having a source IP address of 4.4.4.1), destined for aparticular CSCF 111 (e.g., having a destination IP address of 1.1.1.3).The traffic may include, for example, a SIP message or some othersuitable message. Based on the information (received at 312) propagatedby Master Routing Component 301, each router 305 may determine anappropriate path for the traffic to its destination. For example, eachrouter 305 may use the routing information (e.g., the paths propagatedby Master Routing Component 301) to determine an identifier (e.g., aASN) of a router 305 or other element to which the traffic should beforwarded, and may forward the traffic to the next router 305 or otherelement in the path. In this manner, the traffic from UE 101 mayultimately be provided to data center 201-3 (e.g., based on beingaddressed to an IP address in the “1.1.1.x” IP address range). Acontroller, router, etc. that is associated with data center 201-3 mayfurther forward the traffic to CSCF 111-11 based on the particulardestination IP address (e.g., 1.1.1.3, in this example) of the traffic.

FIG. 4 illustrates an example data structure, which may be maintained orprovided by Master Routing Component 301, in accordance with someembodiments. For example, data structure 401 may reflect informationmaintained or provided by Master Routing Component 301 prior toreceiving the advertisement (at 310) of routes associated with the“1.1.1.x” IP address range from data center 201-3, and data structure402 may reflect information maintained or provided by Master RoutingComponent 301 after receiving the advertisement (at 310) of routesassociated with the “1.1.1.x” IP address range from data center 201-3.

For example, as shown, data structure 401 may include paths for variouscommunication endpoints. In some embodiments, data structure 401 may be,or may include, a routing table (e.g., a BGP routing table). Thecommunication endpoints are expressed here in terms of IP addresses. Forexample, data structure shows paths between “Source IP” and “DestinationIP.” In practice, other terminology may be used to reflect similarconcepts (e.g., “Network IP” and “Next Hop IP”, or other suitablenotations). As shown, for example, data structure 401 may indicate thattraffic, from IP addresses in the “4.4.4.x” IP address range, to IPaddresses in the “1.1.1.x” range should traverse elements (e.g., ASelements) having the identifiers (e.g., ASNs) 11, 22, and 1234. Further,data structure 401 may indicate that traffic, from IP addresses in the“5.5.5.x” IP address range, to IP addresses in the “1.1.1.x” rangeshould traverse elements (e.g., AS elements) having the identifiers(e.g., ASNs) 33, 44, and 1234. Referring to the example shown in FIG. 3,the identifier 1234 may be associated with data center 201-1. Thus, theaforementioned paths indicate data center 201-1 (e.g., based on theidentifier 1234) as the endpoint of the indicated paths.

As further shown, data structure 401 may indicate that traffic, from IPaddresses in the “4.4.4.x” IP address range, to IP addresses in the“2.2.2.x” range should traverse elements (e.g., AS elements) having theidentifiers (e.g., ASNs) 11, 55, 66, and 2345. Further, data structure401 may indicate that traffic, from IP addresses in the “5.5.5.x” IPaddress range, to IP addresses in the “2.2.2.x” range should traverseelements (e.g., AS elements) having the identifiers (e.g., ASNs) 33,345, 99, and 2345. Thus, referring to the example shown in FIG. 3, thesepaths indicate data center 201-2 (e.g., based on the identifier 2345) asthe endpoint of the indicated paths.

Further, data structure 401 may indicate that traffic, from IP addressesin the “4.4.4.x” IP address range, to IP addresses in the “3.3.3.x”range should traverse elements (e.g., AS elements) having theidentifiers (e.g., ASNs) 11, 88, 99, and 3456. Further, data structure401 may indicate that traffic, from IP addresses in the “5.5.5.x” IPaddress range, to IP addresses in the “3.3.3.x” range should traverseelements (e.g., AS elements) having the identifiers (e.g., ASNs) 33, 3,and 3456. Thus, referring to the example shown in FIG. 3, these pathsindicate data center 201-3 (e.g., based on the identifier 3456) as theendpoint of the indicated paths.

Once Master Routing Component 301 receives (at 310) the advertisementfrom data center 201-3 (e.g., from the element having the identifier“3456”), Master Routing Component 301 may update the information in datastructure 401, to yield modified data structure 402. As shown, the pathsbetween Source IP addresses in the “4.4.4.x” and “5.5.5.x” ranges anddestination IP addresses in the “2.2.2.x” and “3.3.3.x” ranges mayremain the same after receiving (at 310) the advertisement from datacenter 201-3. On the other hand, the paths between source IP addressesin the “4.4.4.x” and “5.5.5.x” ranges and destination IP addresses inthe “1.1.1.x” range may have been modified, as compared to theinformation shown in data structure 401.

For example, instead of being associated with the path “11, 22, 1234,”traffic between IP addresses in the “4.4.4.x” and “1.1.1.x” range may beassociated with the path “11, 88, 99, 3456.” Similarly, instead of beingassociated with the path “33, 44, 1234,” traffic between IP addresses inthe “5.5.5.x” and “1.1.1.x” range may be associated with the path “33,3, 3456.” For example, the paths between the “4.4.4.x” and “1.1.1.x”range may be the same as the paths between the “4.4.4.x” and “3.3.3.x”range, and the paths between the “5.5.5.x” and “1.1.1.x” range may bethe same as the paths between the “5.5.5.x” and “3.3.3.x” range.

While one set of paths is shown in FIG. 4 between each pair ofsource/destination IP address ranges, in practice, multiple paths may beindicated. Further, while concepts are described above in terms of astatic configuration or provisioning of “backup” IP address ranges, insome embodiments, the devices or systems used to implement backupfunctionality for a failed device or system (e.g., a failed data center201, a failed CSCF 111, etc.) may be selected dynamically.

For example, returning to FIG. 3, in lieu of identifying (at 306) abackup data center associated with the failed IP address range, CSCFSelection Component 105 may dynamically determine a data center 201 orCSCF 111 to provide the functionality of the failed device or system.For example, CSCF Selection Component 105 may receive (e.g., from CSCFAvailability Component 303) performance or load information associatedwith a set of candidate data centers 201 or CSCFs 111. CSCF SelectionComponent 105 may, for example, select a particular data center 201based on performance metrics associated with data center 201 (e.g., aparticular data center 201 that provides the lowest latency, highestthroughput, etc. out of a set of candidate data centers 201). As anotherexample, the information received from CSCF Availability Component 303may indicate that a particular data center 201 is less loaded (e.g., interms of processor load, memory load, network load, and/or load orcapacity associated with some other resource or combination ofresources) than other data centers 201. CSCF Selection Component 105 maythus notify (at 308) the selected data center 201 to advertise the IPaddress range provided by the failed data center 201.

In this manner, a failover from a failed CSCF 111 (e.g., associated witha failed data center 201) to a functioning CSCF 111 (e.g., associatedwith a functioning data center 201) may be performed seamlessly andwithout the involvement of UEs 101. For example, while some UEs 101 maybe configured to automatically communicate with a secondary or tertiaryCSCF 111 in the event of failure of a primary CSCF 111, other UEs 101may require a restart or some other process, which may be perceptible orinconvenient to users of UE 101. The reassignment process in accordancewith some embodiments (e.g., as described above) may obviate the needfor a UE 101 to restart or reestablish communications with a secondaryCSCF 111 using a different IP address.

FIG. 5 illustrates an example process 500 for assigning one or moreCSCFs to serve a UE based on a location associated with a PGW that actsas a registration proxy for the UE. In some embodiments, some or all ofprocess 500 may be performed by CSCF Selection Component 105. In someembodiments, one or more other devices may perform some or all ofprocess 500 (e.g., in concert with, and/or in lieu of, CSCF SelectionComponent 105).

As shown, process 500 may include receiving (at 502) a request for an IPaddress of a CSCF to a particular UE 101. As discussed above, forexample, CSCF Selection Component 105 may receive the request as aDiameter protocol message from PGW 103. The request may, in someembodiments, include the IP address or other identifier associated withPGW 103. In this manner, PGW 103 may be considered a “proxy” on behalfof UE 101.

Process 500 may further include determining (at 504) a locationassociated with the proxy associated with UE 101. For example, CSCFSelection Component 105 may determine a location associated with PGW103, from which the request was received (at 502). For example, CSCFSelection Component 105 may identify, based on a mapping of PGW IPaddresses (and/or other identifiers) to locations or regions, a locationor region associated with PGW 103. As discussed above, the location ofPGW 103 may correspond to a location or region in which UE 101 islocated.

Process 500 may additionally include selecting (at 506) one or moreCSCFs 111 to assign to UE 101. For example, CSCF Selection Component 105may identify one or more data centers 201 that correspond to theidentified location or region of PGW 103, and/or may individuallyidentify one or more CSCFs 111 that are located within or proximate tothe location or region of PGW 103. As described above, CSCF SelectionComponent 105 may select a set of CSCFs 111 for UE 101. The selectionmay include designating a particular CSCF 111 as a “primary” CSCF andone or more other CSCFs 111 as “secondary,” “tertiary,” “auxiliary,”“supplemental,” etc. CSCFs. In some embodiments, CSCF SelectionComponent 105 may obtain utilize a LLR selection technique, in which two“local” CSCFs 111 are selected as primary and secondary CSCFs (e.g., twoCSCFs 111 that are associated with the same data center 201), and one“remote” CSCF 111 is selected as a tertiary CSCF (e.g., associated witha different data center 201 than the primary and secondary CSCFs 111).

Process 500 may also include outputting (at 508) an indication of theselected CSCF(s) 111. For example, as similarly described above, CSCFSelection Component 105 may output, to PGW 103 (e.g., using Diameter orsome other suitable protocol) an indication of the IP address(es) of theselected CSCF(s) 111. As similarly discussed above, PGW 103 may notifyUE 101 of the IP address(es), which may include outputting one or moremessages to one or more other devices or systems (e.g., a MME, a SGW,etc.). As a result, UE 101 may utilize the IP addresses (e.g., the IPaddress of the primary CSCF 111) to communicate with one or more of theselected CSCFs 111, in order to receive services provided by CSCF(s)111.

FIG. 6 illustrates an example process 600 for reassigning an IP address,associated with a failed CSCF, to a functioning CSCF. In someembodiments, some or all of process 600 may be performed by CSCFSelection Component 105. In some embodiments, one or more other devicesmay perform some or all of process 600 (e.g., in concert with, and/or inlieu of, CSCF Selection Component 105).

As shown, process 600 may include receiving (at 602) an indication thata particular CSCF 111 has failed. For example, as discussed above, theindication may be received from CSCF Availability Component 303 and/orsome other device or system that determines performance and/oravailability of CSCF 111. Additionally, or alternatively, as similarlydiscussed above, CSCF Selection Component 105 may receive an indicationor otherwise determine that a particular data center 201, in which CSCF111 is located, has failed. In some embodiments, the indication mayinclude an ASN or IP address associated with failed CSCF 111.Additionally, or alternatively, CSCF Selection Component 105 maydetermine the ASN or IP address based on information maintained orreceived from Master Routing Component 301.

Process 600 may further include determining (at 604) a backup CSCF 111associated with the IP address of failed CSCF 111. For example, asdiscussed above, CSCFs 111 may have been provisioned with, or otherwiseassigned, backup IP addresses. Additionally, or alternatively, asdiscussed above, CSCF Selection Component 105 may dynamically select aparticular CSCF 111 to serve as a backup for failed CSCF 111. Forexample, as discussed above, multiple CSCFs 111 may be assigned to oneor more UEs 101 (e.g., including a primary, secondary, etc. CSCF 111).CSCF Selection Component 105 may identify another CSCF 111 from the samegroup as the failed CSCF 111 (e.g., may identify a secondary CSCF, inthe event that failed CSCF 111 is a primary CSCF), and may determinethat the other functioning CSCF 111 of the same group (e.g., a secondaryCSCF) should be used. As another example, CSCF Selection Component 105may select backup CSCF 111 based on load and/or performance informationassociated with a set of candidate CSCFs 111, from which backup CSCF 111may be selected.

Process 600 may additionally include instructing (at 606) backup CSCF111 to advertise routes associated with the IP address of failed CSCF111. For example, CSCF Selection Component 105 may instruct selectedbackup CSCF 111 to advertise routes (e.g., according to BGP or someother suitable dynamic routing protocol) between a set of IP addresses(e.g., including an IP address of one or more UEs for which failed CSCF111 was previously selected) and the IP address of failed CSCF 111(i.e., the IP address being reassigned to functioning backup CSCF 111).As discussed above, the routes may be expressed in terms of ASNs orother suitable identifiers. Once backup CSCF 111 advertises the routes,the routes may be propagated (e.g., by a BGP route reflector and/or someother suitable component) to other elements that implement the dynamicrouting technique, such as routers associated with a core network, anIMS network, etc., with which UE 101 communicates. In this manner, UE101 may continue receiving services or other communications previouslyprovided by failed CSCF 111 with minimal interruption of service, andwith no signaling or messaging required from UE 101 to establishcommunications with backup CSCF 111.

Process 600 may further include instructing (at 608) failed CSCF 111 tostop advertising routes associated with the IP address of failed CSCF111. As discussed above, in the event that failed CSCF 111 isunreachable, CSCF Selection Component 105 and/or some other device orsystem may cache the instruction such that failed CSCF 111 receives theinstruction when CSCF 111 becomes available.

FIG. 7 illustrates an example environment 700, in which one or moreembodiments may be implemented. In some embodiments, environment 700 maycorrespond to a 5G network, and/or may include elements of a 5G network.In some embodiments, environment 700 may correspond to a 5GNon-Standalone (“NSA”) architecture, in which a 5G radio accesstechnology (“RAT”) may be used in conjunction with one or more otherRATs (e.g., a Long-Term Evolution (“LTE”) RAT), and/or in which elementsof a 5G core network may be implemented by, may be communicativelycoupled with, and/or may include elements of another type of corenetwork (e.g., an EPC). As shown, environment 700 may include UE 101,RAN 710 (which may include one or more Next Generation Node Bs (“gNBs”)711), RAN 712 (which may include one or more one or more eNBs 713), AMF715, Session Management Function (“SMF”)/Packet Data Network (“PDN”)Gateway (“PGW”)-Control plane function (“PGW-C”) 720, Policy ControlFunction (“PCF”)/Policy Charging and Rules Function (“PCRF”) 725,Application Function (“AF”) 730, User Plane Function (“UPF”)/PGW-Userplane function (“PGW-U”) 735, Home Subscriber Server (“HSS”)/UnifiedData Management (“UDM”) 740, Authentication Server Function (“AUSF”)745, CSCF 111, CSCF Selection Component 105 (abbreviated in the figureas “CSC” 105), and Data Network (“DN”) 750. In some embodiments, PGW-U735 and PGW-C 720 may correspond to a Control and User Plane Separation(“CUPS”) architecture.

The quantity of devices and/or networks, illustrated in FIG. 7, isprovided for explanatory purposes only. In practice, environment 700 mayinclude additional devices and/or networks, fewer devices and/ornetworks, different devices and/or networks, or differently arrangeddevices and/or networks than illustrated in FIG. 7. For example, whilenot shown, environment 700 may include devices that facilitate or enablecommunication between various components shown in environment 700, suchas routers, modems, gateways, switches, hubs, etc. For example, theserouters, modems, gateways, etc., may implement a dynamic routingtechnique (such as BGP or some other suitable routing technique). Theseelements (e.g., routers, modems, gateways, etc.) may be associated witha unique identifier associated with the dynamic routing technique (e.g.,an ASN). Each element may, according to the dynamic routing technique,calculate or determine paths between itself and one or more otherdevices or systems. For example, each router that implements the dynamicrouting technique may calculate or determine a path between an IPaddress associated with UE 101 and itself. In some embodiments, assimilarly discussed above, the paths may be expressed in terms ofidentifiers associated with the dynamic routing technique (e.g., BGP).

In some embodiments, one or more of the devices of environment 700 mayperform one or more functions described as being performed by anotherone or more of the devices of environment 700. Devices of environment700 may interconnect with each other and/or other devices via wiredconnections, wireless connections, or a combination of wired andwireless connections. In some implementations, one or more devices ofenvironment 700 may be physically integrated in, and/or may bephysically attached to, one or more other devices of environment 700.

UE 101 may include a computation and communication device, such as awireless mobile communication device that is capable of communicatingwith RAN 710 and/or DN 750. UE 101 may be, or may include, aradiotelephone, a personal communications system (“PCS”) terminal (e.g.,a device that combines a cellular radiotelephone with data processingand data communications capabilities), a personal digital assistant(“PDA”) (e.g., a device that may include a radiotelephone, a pager,Internet/intranet access, etc.), a smart phone, a laptop computer, atablet computer, a camera, a personal gaming system, an IoT device(e.g., a sensor, a smart home appliance, or the like), a wearabledevice, a Mobile-to-Mobile (“M2M”) device, or another type of mobilecomputation and communication device. UE 101 may send traffic to and/orreceive traffic (e.g., user plane traffic) from DN 750 via RAN 710 andUPF/PGW-U 735.

RAN 710 may be, or may include, a 5G RAN that includes one or more basestations (e.g., one or more gNBs 711), via which UE 101 may communicatewith one or more other elements of environment 700. UE 101 maycommunicate with RAN 710 via an air interface (e.g., as provided by gNB711). For instance, RAN 710 may receive traffic (e.g., voice calltraffic, data traffic, messaging traffic, signaling traffic, etc.) fromUE 101 via the air interface, and may communicate the traffic toUPF/PGW-U 735, and/or one or more other devices or networks. Similarly,RAN 710 may receive traffic intended for UE 101 (e.g., from UPF/PGW-U735, AMF 715, and/or one or more other devices or networks) and maycommunicate the traffic to UE 101 via the air interface.

RAN 712 may be, or may include, an LTE RAN that includes one or morebase stations (e.g., one or more eNBs 713), via which UE 101 maycommunicate with one or more other elements of environment 700. UE 101may communicate with RAN 712 via an air interface (e.g., as provided byeNB 713). For instance, RAN 710 may receive traffic (e.g., voice calltraffic, data traffic, messaging traffic, signaling traffic, etc.) fromUE 101 via the air interface, and may communicate the traffic toUPF/PGW-U 735, and/or one or more other devices or networks. Similarly,RAN 710 may receive traffic intended for UE 101 (e.g., from UPF/PGW-U735, SGW 717, and/or one or more other devices or networks) and maycommunicate the traffic to UE 101 via the air interface.

AMF 715 may include one or more devices, systems, Virtualized NetworkFunctions (“VNFs”), etc., that perform operations to register UE 101with the 5G network, to establish bearer channels associated with asession with UE 101, to hand off UE 101 from the 5G network to anothernetwork, to hand off UE 101 from the other network to the 5G network,and/or to perform other operations. In some embodiments, the 5G networkmay include multiple AMFs 715, which communicate with each other via theN14 interface (denoted in FIG. 7 by the line marked “N14” originatingand terminating at AMF 715).

SGW 717 may include one or more devices, systems, VNFs, etc., thataggregate traffic received from one or more eNBs 713 and send theaggregated traffic to an external network or device via UPF/PGW-U 735.Additionally, SGW 717 may aggregate traffic received from one or moreUPF/PGW-Us 735 and may send the aggregated traffic to one or more eNBs713. SGW 717 may operate as an anchor for the user plane duringinter-eNB handovers and as an anchor for mobility between differenttelecommunication networks or RANs (e.g., RANs 710 and 712).

SMF/PGW-C 720 may include one or more devices, systems, VNFs, etc., thatgather, process, store, and/or provide information in a manner describedherein. SMF/PGW-C 720 may, for example, facilitate in the establishmentof communication sessions on behalf of UE 101. In some embodiments, theestablishment of communications sessions may be performed in accordancewith one or more policies provided by PCF/PCRF 725. In some embodiments,some of the operations described above with respect to PGW 103 may beperformed by PGW-C 720 (e.g., acting as a proxy for registration withCSCF 111, on behalf of UE 101).

PCF/PCRF 725 may include one or more devices, systems, VNFs, etc., thataggregate information to and from the 5G network and/or other sources.PCF/PCRF 725 may receive information regarding policies and/orsubscriptions from one or more sources, such as subscriber databasesand/or from one or more users (such as, for example, an administratorassociated with PCF/PCRF 725).

AF 730 may include one or more devices, systems, VNFs, etc., thatreceive, store, and/or provide information that may be used indetermining parameters (e.g., quality of service parameters, chargingparameters, or the like) for certain applications.

UPF/PGW-U 735 may include one or more devices, systems, VNFs, etc., thatreceive, store, and/or provide data (e.g., user plane data). Forexample, UPF/PGW-U 735 may receive user plane data (e.g., voice calltraffic, data traffic, etc.), destined for UE 101, from DN 750, and mayforward the user plane data toward UE 101 (e.g., via RAN 710, SMF/PGW-C720, and/or one or more other devices). In some embodiments, multipleUPFs 735 may be deployed (e.g., in different geographical locations),and the delivery of content to UE 101 may be coordinated via the N9interface (e.g., as denoted in FIG. 7 by the line marked “N9”originating and terminating at UPF/PGW-U 735). Similarly, UPF/PGW-U 735may receive traffic from UE 101 (e.g., via RAN 710, SMF/PGW-C 720,and/or one or more other devices), and may forward the traffic toward DN750. In some embodiments, UPF/PGW-U 735 may communicate (e.g., via theN4 interface) with SMF/PGW-C 720, regarding user plane data processed byUPF/PGW-U 735.

HSS/UDM 740 and AUSF 745 may include one or more devices, systems, VNFs,etc., that manage, update, and/or store, in one or more memory devicesassociated with AUSF 745 and/or HSS/UDM 740, profile informationassociated with a subscriber. AUSF 745 and/or HSS/UDM 740 may performauthentication, authorization, and/or accounting operations associatedwith the subscriber and/or a communication session with UE 101.

DN 750 may include one or more wired and/or wireless networks. Forexample, DN 750 may include an IP-based PDN, a wide area network (“WAN”)such as the Internet, a private enterprise network, and/or one or moreother networks. UE 101 may communicate, through DN 750, with dataservers, other UEs 101, and/or to other servers or applications that arecoupled to DN 750. DN 750 may be connected to one or more othernetworks, such as a public switched telephone network (“PSTN”), a publicland mobile network (“PLMN”), and/or another network. DN 750 may beconnected to one or more devices, such as content providers,applications, web servers, and/or other devices, with which UE 101 maycommunicate.

CSCF 111 may include one or more devices, systems, VNFs, etc., thatgather, process, search, store, and/or provide information in a mannerdescribed herein. CSCF 111 may process and/or route messages, calls,etc. to and/or from UE 101 via the EPC. For example, CSCF 111 mayprocess messages or calls, received from an external network, that aredestined for UE 101. In another example, CSCF 111 may process messagesand/or calls, received from UE 101, that are destined for the externalnetwork. CSCF 111 may be part of an IMS network that includes multipleCSCFs 111 (e.g., geographically distributed CSCFs 111, which may belocated in, or otherwise associated with, different data centers 201).As mentioned above, a “data center” may include a physical facility,and/or may refer to a particular set of devices. In some embodiments,different data centers may be defined in terms of different ASNs orother identifiers used in a dynamic routing technique (e.g., BGP). Whilenot explicitly shown in FIG. 7, the term “CSCF” may refer to a set ofCSCFs, including an Interrogating CSCF (“I-CSCF”), a Serving CSCF(“S-CSCF”), and/or a Proxy CSCF (“P-CSCF”).

CSCF Selection Component 105 may include one or more devices, systems,VNFs, etc., perform one or more functions described herein. For example,as discussed above, CSCF Selection Component 105 may identify CSCFs 111and/or other devices that have failed and/or which do not meet athreshold performance, and may effect a seamless failover to afunctioning CSCF 111 (or other device). For example, as describedherein, may select a functioning CSCF 111 to handle the servicesprovided by the failed CSCF 111, and may cause the functioning CSCF 111to advertise routes associated with the functioning CSCF 111 and an IPaddress previously associated with the failed CSCF 111. In this manner,the routes may be propagated in accordance with the dynamic routingtechnique (e.g., by a BGP route reflector or some other suitable deviceor system).

FIG. 8 illustrates example components of device 800. One or more of thedevices described above may include one or more devices 800. Device 800may include bus 810, processor 820, memory 830, input component 840,output component 850, and communication interface 860. In anotherimplementation, device 800 may include additional, fewer, different, ordifferently arranged components.

Bus 810 may include one or more communication paths that permitcommunication among the components of device 800. Processor 820 mayinclude a processor, microprocessor, or processing logic that mayinterpret and execute instructions. Memory 830 may include any type ofdynamic storage device that may store information and instructions forexecution by processor 820, and/or any type of non-volatile storagedevice that may store information for use by processor 820.

Input component 840 may include a mechanism that permits an operator toinput information to device 800, such as a keyboard, a keypad, a button,a switch, etc. Output component 850 may include a mechanism that outputsinformation to the operator, such as a display, a speaker, one or morelight emitting diodes (“LEDs”), etc.

Communication interface 860 may include any transceiver-like mechanismthat enables device 800 to communicate with other devices and/orsystems. For example, communication interface 860 may include anEthernet interface, an optical interface, a coaxial interface, or thelike. Communication interface 860 may include a wireless communicationdevice, such as an infrared (“IR”) receiver, a Bluetooth® radio, or thelike. The wireless communication device may be coupled to an externaldevice, such as a remote control, a wireless keyboard, a mobiletelephone, etc. In some embodiments, device 800 may include more thanone communication interface 860. For instance, device 800 may include anoptical interface and an Ethernet interface.

Device 800 may perform certain operations relating to one or moreprocesses described above. Device 800 may perform these operations inresponse to processor 820 executing software instructions stored in acomputer-readable medium, such as memory 830. A computer-readable mediummay be defined as a non-transitory memory device. A memory device mayinclude space within a single physical memory device or spread acrossmultiple physical memory devices. The software instructions may be readinto memory 830 from another computer-readable medium or from anotherdevice. The software instructions stored in memory 830 may causeprocessor 820 to perform processes described herein. Alternatively,hardwired circuitry may be used in place of or in combination withsoftware instructions to implement processes described herein. Thus,implementations described herein are not limited to any specificcombination of hardware circuitry and software.

The foregoing description of implementations provides illustration anddescription, but is not intended to be exhaustive or to limit thepossible implementations to the precise form disclosed. Modificationsand variations are possible in light of the above disclosure or may beacquired from practice of the implementations.

For example, while series of blocks and/or signals have been describedabove (e.g., with regard to FIGS. 1-6), the order of the blocks and/orsignals may be modified in other implementations. Further, non-dependentblocks and/or signals may be performed in parallel. Additionally, whilethe figures have been described in the context of particular devicesperforming particular acts, in practice, one or more other devices mayperform some or all of these acts in lieu of, or in addition to, theabove-mentioned devices.

As another example, while described in the context of CSCFs, inpractice, similar concepts may apply to other types of devices thatutilize IP-based messaging. For example, a set of VNFs, cloud computingsystems, edge computing systems (e.g., Mobile/Multi-Access EdgeComputing (“MEC”) systems), etc. may provide similar or identicalfunctionality, and the failure of one may invoke a failover processsimilar to embodiments described above. For example, a first cloudcomputing system may provide services to a UE via IP-based messaging. Ifthe first cloud computing system fails, some embodiments may identify asecond cloud computing system as a backup, and may instruct the secondcloud computing system to advertise paths or routes associated with anIP address previously used by the failed cloud computing system. In thismanner, the IP address previously associated with the failed first cloudcomputing system may be associated with the second cloud computingsystem (e.g., utilizing BGP or some other suitable dynamic routingtechnique).

The actual software code or specialized control hardware used toimplement an embodiment is not limiting of the embodiment. Thus, theoperation and behavior of the embodiment has been described withoutreference to the specific software code, it being understood thatsoftware and control hardware may be designed based on the descriptionherein.

Even though particular combinations of features are recited in theclaims and/or disclosed in the specification, these combinations are notintended to limit the disclosure of the possible implementations. Infact, many of these features may be combined in ways not specificallyrecited in the claims and/or disclosed in the specification. Althougheach dependent claim listed below may directly depend on only one otherclaim, the disclosure of the possible implementations includes eachdependent claim in combination with every other claim in the claim set.

Further, while certain connections or devices are shown, in practice,additional, fewer, or different, connections or devices may be used.Furthermore, while various devices and networks are shown separately, inpractice, the functionality of multiple devices may be performed by asingle device, or the functionality of one device may be performed bymultiple devices. Further, multiple ones of the illustrated networks maybe included in a single network, or a particular network may includemultiple networks. Further, while some devices are shown ascommunicating with a network, some such devices may be incorporated, inwhole or in part, as a part of the network.

To the extent the aforementioned implementations collect, store, oremploy personal information provided by individuals, it should beunderstood that such information shall be collected, stored, and used inaccordance with all applicable laws concerning protection of personalinformation. Additionally, the collection, storage, and use of suchinformation may be subject to consent of the individual to such activity(for example, through “opt-in” or “opt-out” processes, as may beappropriate for the situation and type of information). Storage and useof personal information may be in an appropriately secure mannerreflective of the type of information, for example, through variousencryption and anonymization techniques for particularly sensitiveinformation.

No element, act, or instruction used in the present application shouldbe construed as critical or essential unless explicitly described assuch. An instance of the use of the term “and,” as used herein, does notnecessarily preclude the interpretation that the phrase “and/or” wasintended in that instance. Similarly, an instance of the use of the term“or,” as used herein, does not necessarily preclude the interpretationthat the phrase “and/or” was intended in that instance. Also, as usedherein, the article “a” is intended to include one or more items, andmay be used interchangeably with the phrase “one or more.” Where onlyone item is intended, the terms “one,” “single,” “only,” or similarlanguage is used. Further, the phrase “based on” is intended to mean“based, at least in part, on” unless explicitly stated otherwise.

What is claimed is:
 1. A device, comprising: one or more processorsconfigured to: determine that a performance metric, associated with afirst Call Session Control Function (“CSCF”) that is associated with aInternet Protocol (“IP”) Multimedia Subsystem (“IMS”) network, does notmeet a threshold performance metric; identify a particular IP addressassociated with the first CSCF; select a second CSCF, associated withthe IMS network, to which the particular IP address should be assigned;and based on determining that the performance metric associated with thefirst CSCF does not meet the threshold performance metric, cause networktraffic, destined for the particular IP address, to be routed to theselected second CSCF in lieu of the first CSCF, the causing includinginstructing the second CSCF to output paths associated with theparticular IP address, wherein the outputting causes one or more networkdevices to route network traffic toward the second CSCF in lieu of thefirst CSCF.
 2. The device of claim 1, wherein the second CSCF and theone or more network devices implement a dynamic routing technique basedon which the one or more network devices forward the network traffictoward the second CSCF based on receiving the paths outputted by thesecond CSCF.
 3. The device of claim 2, wherein the dynamic routingtechnique includes a Border Gateway Protocol (“BGP”) routing technique,wherein outputting the paths includes outputting a BGP advertisement toa BGP route reflector.
 4. The device of claim 1, wherein the particularIP address is a first IP address, wherein the one or more processors arefurther configured to: receive a request to establish a communicationsession with a UE that is associated with a second IP address; andassign, based on the request to establish the communication session, thefirst CSCF to the UE prior to determining that the performance metric,associated with the first CSCF, does not meet a threshold performancemetric, wherein the one or more network devices route network traffic,destined for the first IP address and sent from the second IP address,to the first CSCF based on the assignment of the first CSCF to the UE.5. The device of claim 4, wherein the one or more processors are furtherconfigured to: receive a first Session Initiation Protocol (“SIP”)message from the UE prior to determining that the performance metric,associated with the first CSCF, does not meet a threshold performancemetric; route the first SIP message to the first CSCF; receive a secondSIP message from the UE after selecting the second CSCF; and route thesecond SIP message to the second CSCF based on the selection of thesecond CSCF.
 6. The device of claim 4, wherein instructing the secondCSCF to output the paths associated with the first IP address includesinstructing the second CSCF to output at least one path between thefirst IP address and the second IP address, the at least one pathincluding the one or more network devices.
 7. The device of claim 1,wherein the paths include a plurality of paths between a plurality ofdifferent IP addresses and the particular IP address.
 8. Anon-transitory computer-readable medium, storing a plurality ofprocessor-executable instructions, which, when executed by one or moreprocessors, causes the one or more processors to: determine that aperformance metric, associated with a first Call Session ControlFunction (“CSCF”) that is associated with a Internet Protocol (“IP”)Multimedia Subsystem (“IMS”) network, does not meet a thresholdperformance metric; identify a particular IP address associated with thefirst CSCF; select a second CSCF, associated with the IMS network, towhich the particular IP address should be assigned; and based ondetermining that the performance metric associated with the first CSCFdoes not meet the threshold performance metric, cause network traffic,destined for the particular IP address, to be routed to the selectedsecond CSCF in lieu of the first CSCF, the causing including instructingthe second CSCF to output paths associated with the particular IPaddress, wherein the outputting causes one or more network devices toroute network traffic toward the second CSCF in lieu of the first CSCF.9. The non-transitory computer-readable medium of claim 8, wherein thesecond CSCF and the one or more network devices implement a dynamicrouting technique based on which the one or more network devices forwardthe network traffic toward the second CSCF based on receiving the pathsoutputted by the second CSCF.
 10. The non-transitory computer-readablemedium of claim 9, wherein the dynamic routing technique includes aBorder Gateway Protocol (“BGP”) routing technique, wherein outputtingthe paths includes outputting a BGP advertisement to a BGP routereflector.
 11. The non-transitory computer-readable medium of claim 8,wherein the particular IP address is a first IP address, wherein theplurality of processor-executable instructions further includeprocessor-executable instructions to: receive a request to establish acommunication session with a UE that is associated with a second IPaddress; and assign, based on the request to establish the communicationsession, the first CSCF to the UE prior to determining that theperformance metric, associated with the first CSCF, does not meet athreshold performance metric, wherein the one or more network devicesroute network traffic, destined for the first IP address and sent fromthe second IP address, to the first CSCF based on the assignment of thefirst CSCF to the UE.
 12. The non-transitory computer-readable medium ofclaim 11, wherein the plurality of processor-executable instructionsfurther include processor-executable instructions to: receive a firstSession Initiation Protocol (“SIP”) message from the UE prior todetermining that the performance metric, associated with the first CSCF,does not meet a threshold performance metric; route the first SIPmessage to the first CSCF; receive a second SIP message from the UEafter selecting the second CSCF; and route the second SIP message to thesecond CSCF based on the selection of the second CSCF.
 13. Thenon-transitory computer-readable medium of claim 11, wherein instructingthe second CSCF to output the paths associated with the first IP addressincludes instructing the second CSCF to output at least one path betweenthe first IP address and the second IP address, the at least one pathincluding the one or more network devices.
 14. The non-transitorycomputer-readable medium of claim 8, wherein the paths include aplurality of paths between a plurality of different IP addresses and theparticular IP address.
 15. A method, comprising: determining that aperformance metric, associated with a first Call Session ControlFunction (“CSCF”) that is associated with a Internet Protocol (“IP”)Multimedia Subsystem (“IMS”) network, does not meet a thresholdperformance metric; identifying a particular IP address associated withthe first CSCF; selecting a second CSCF, associated with the IMSnetwork, to which the particular IP address should be assigned; andbased on determining that the performance metric associated with thefirst CSCF does not meet the threshold performance metric, causingnetwork traffic, destined for the particular IP address, to be routed tothe selected second CSCF in lieu of the first CSCF, the causingincluding instructing the second CSCF to output paths associated withthe particular IP address, wherein the outputting causes one or morenetwork devices to route network traffic toward the second CSCF in lieuof the first CSCF.
 16. The method of claim 15, wherein the second CSCFand the one or more network devices implement a Border Gateway Protocol(“BGP”) routing technique based on which the one or more network devicesforward the network traffic toward the second CSCF based on receivingthe paths outputted by the second CSCF, wherein outputting the pathsincludes outputting a BGP advertisement to a BGP route reflector. 17.The method of claim 15, wherein the particular IP address is a first IPaddress, the method further comprising: receiving a request to establisha communication session with a UE that is associated with a second IPaddress; and assigning, based on the request to establish thecommunication session, the first CSCF to the UE prior to determiningthat the performance metric, associated with the first CSCF, does notmeet a threshold performance metric, wherein the one or more networkdevices route network traffic, destined for the first IP address andsent from the second IP address, to the first CSCF based on theassignment of the first CSCF to the UE.
 18. The method of claim 17,further comprising: receiving a first Session Initiation Protocol(“SIP”) message from the UE prior to determining that the performancemetric, associated with the first CSCF, does not meet a thresholdperformance metric; routing the first SIP message to the first CSCF;receiving a second SIP message from the UE after selecting the secondCSCF; and routing the second SIP message to the second CSCF based on theselection of the second CSCF.
 19. The method of claim 17, whereininstructing the second CSCF to output the paths associated with thefirst IP address includes instructing the second CSCF to output at leastone path between the first IP address and the second IP address, the atleast one path including the one or more network devices.
 20. The methodof claim 15, wherein the paths include a plurality of paths between aplurality of different IP addresses and the particular IP address.